{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Saliency logos"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Saliency logos are used to represent important nucleotides as predicted by deep neural networks. Logomaker uses the method [Saliency_to_matrix](https://logomaker.readthedocs.io/en/latest/matrix.html#saliency-to-matrix) to represent saliency logos. The inputs to this method are a sequence string, and an array of numerical values corresponding to the saliency of the characters in the sequence string. The output is a dataframe that can be passed in to the [Logo](https://logomaker.readthedocs.io/en/latest/Logo.html) class to see the logo.\n",
    "\n",
    "We begin by importing some useful packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline \n",
    "plt.ion()\n",
    "\n",
    "import logomaker as lm"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SpliceAI saliency logo"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we show to draw a saliency logo representing the importance of nucleotides in the vicinity of *U2SUR* exon 9, as predicted by a deep neural network model of splice site selection. (This logo was adapted with permission from the authors of ([1](#Jaganathan)))."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Description of example matrix \"nn_saliency_values.txt\":\n",
      "# \n",
      "# Saliency values illustrated in Figure 1F.\n",
      "# Data are from Figure 1D of Janganathan et al. (2019),\n",
      "# and were kindly provided by Kyle Farh and Kishore Jaganathan.\n",
      "# \n",
      "# References:\n",
      "# \n",
      "# Jaganathan K et al. (2019) Predicting Splicing from Primary Sequence with\n",
      "# Deep Learning. Cell. 176(3):535–548.e24.\n",
      "# \n",
      "\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>character</th>\n",
       "      <th>value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>G</td>\n",
       "      <td>-0.001725</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>G</td>\n",
       "      <td>0.033557</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>G</td>\n",
       "      <td>0.030026</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>G</td>\n",
       "      <td>0.012748</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>G</td>\n",
       "      <td>0.000337</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  character     value\n",
       "0         G -0.001725\n",
       "1         G  0.033557\n",
       "2         G  0.030026\n",
       "3         G  0.012748\n",
       "4         G  0.000337"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# load saliency data\n",
    "with lm.open_example_datafile('nn_saliency_values.txt') as f:\n",
    "    saliency_data_df = pd.read_csv(f, comment='#', sep='\\t')\n",
    "    \n",
    "# preview dataframe\n",
    "saliency_data_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can extract the sequences and values from this dataframe and enter them into the Logo class to see the logo."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>C</th>\n",
       "      <th>G</th>\n",
       "      <th>T</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pos</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.0</td>\n",
       "      <td>-0.0</td>\n",
       "      <td>-0.001725</td>\n",
       "      <td>-0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.033557</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.030026</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.012748</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000337</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       A    C         G    T\n",
       "pos                         \n",
       "0   -0.0 -0.0 -0.001725 -0.0\n",
       "1    0.0  0.0  0.033557  0.0\n",
       "2    0.0  0.0  0.030026  0.0\n",
       "3    0.0  0.0  0.012748  0.0\n",
       "4    0.0  0.0  0.000337  0.0"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create saliency matrix\n",
    "saliency_mat_df = lm.saliency_to_matrix(seq=saliency_data_df['character'], \n",
    "                                               values=saliency_data_df['value'])\n",
    "# preview saliency dataframe.\n",
    "saliency_mat_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<logomaker.src.Logo.Logo instance at 0x10ef84950>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10f00f550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# show logo\n",
    "lm.Logo(saliency_mat_df, figsize=(18,3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# References"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='Jaganathan'></a>\n",
    "Jaganathan K et al. (2019) `Predicting Splicing from Primary Sequence with Deep Learning.` Cell. 176(3):535-548.e24."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
